package cn.edu.bjut.my.thinkinjava._20200428_Proxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;

public class Main {
    /**
     * 本例实现 java动态代理实例
     * 1：代理接口
     * 2：被代理类
     * 3：代理类
     * 4：调用
     */
    public static void main(String[] args) {
        HelloInterface hello = new Hello();

        InvocationHandler handler = new ProxyHandler(hello);

        HelloInterface proxyHello = (HelloInterface) Proxy.newProxyInstance(hello.getClass().getClassLoader(), hello.getClass().getInterfaces(), handler);

        proxyHello.sayHello();
    }
}
